Web Application Program Interfaces (APIs) allow data and information to be conveniently supplied by serving computers to requesting computers. Both the serving and requesting computers use networking and web technologies, such as, Hypertext Transfer Protocol (HTTP), Hypertext Markup Language (HTML), eXtensible Markup Language (XML), JavaScript Object Notation (JSON), or the like, to exchange data and information. In order to maximize the efficiency and to optimize the performance of these APIs, operators often put in place management systems that monitor every aspect of web API performance.
API performance can be measured in many ways—latency, throughput, consistency, availability, resiliency, scalability, etc. However, the large number of metrics, as well as the large amount of data collected over time, makes it difficult to intuit which APIs are functioning well and which are performing poorly.
Moreover, measuring performance of individual web APIs can be misleading. For example, testing an API in isolation, from within a datacenter, loses context and the overall effect experienced by an end user. Furthermore, testing in isolation can cause errors to be missed. An HTTP response code 200 nominally indicates success, but such a response may have a semantic error, such as an empty search result when a non-empty search result is expected. Thus, it is with respect to these considerations and others that the present invention has been made.